<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link type="text/css" rel="stylesheet" href="styles.css">
  <script type="text/javascript" src="config.js"></script>
</head>

<body>
  <h1 class="h">4. 图表类型</h1>
  <p>Matplotlib 提供了各种图表类型。</p>
  <dl>
    <dt>1. 散点图 Scatter Plot</dt>
    <dd>
      看两个变量之间的关系，比如看看身高和体重有没有关联。
      <pre><code># 造点数据
height = np.random.normal(170, 10, 100) # 100个身高，均值170，标准差10
weight = height * 0.6 + np.random.normal(0, 5, 100) # 体重和身高有点关系，再加点随机扰动

plt.scatter(height, weight, alpha=0.6) # alpha控制点透明度，防止点太密看不清
plt.title('Height vs Weight')
plt.xlabel('Height (cm)')
plt.ylabel('Weight (kg)')
plt.show()</code></pre>
    </dd>
    <dt>2. 柱状图 Bar Chart</dt>
    <dd>
      比大小、看数量最直观的图。
      <pre><code>fruits = ['Apple', 'Blueberry', 'Cherry', 'Orange']
counts = [23, 45, 13, 32]

plt.bar(fruits, counts)
plt.title('Fruit Counts')
plt.show()</code></pre>
    </dd>
    <dt>3. 直方图 Histogram</dt>
    <dd>
      看数据的分布情况，比如全班同学的考试成绩是否呈正态分布。
      <pre><code>scores = np.random.normal(75, 15, 1000) # 1000个成绩，均值75，标准差15

plt.hist(scores, bins=30, edgecolor='black') # bins代表分成多少组
plt.title('Exam Score Distribution')
plt.xlabel('Score')
plt.ylabel('Frequency')
plt.show()</code></pre>
    </dd>
    <dt>4. 饼图 Pie Chart</dt>
    <dd>
      看各部分占整体的比例。
      <pre><code>labels = ['Python', 'C++', 'Java', 'Go']
sizes = [45, 20, 20, 15]

plt.pie(sizes, labels=labels, autopct='%1.1f%%') # autopct显示百分比
plt.axis('equal') # 保证饼图是圆的
plt.title('Programming Language Popularity')
plt.show()</code></pre>
    </dd>
  </dl>
</body>

</html>